package com.edu.d3_udp2;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;

/**
 * 模拟客户端
 * 目标：完成UDP通信快速入门，实现一发一收
 */
public class Client {
    public static void main(String[] args) throws Exception {
        System.out.println();
        /**
         * 1、创建客户端对象，礽韭菜出去的人
         */
        DatagramSocket socket = new DatagramSocket();
        /**
         * 2、创建数据包对象，封装要发出去的数据（创建一个韭菜盘子）
         * public DatagramPacket(     @NotNull  byte[] buf,
         *     int length,
         *     InetAddress address
         *     int port)
         */
        /**
         * 参数一：封装要发出去的数据
         * 参数二：发送出去的数据大小（字节个数）
         * 参数三：服务端的IP地址（找到服务端的主机）
         * 参数四：服务端程序的入口
         */
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请说：");//韭菜
            String s = scanner.nextLine();
            byte[] bytes = s.getBytes();

            //一旦用户输入了exit，就退出发送
            if("exit".equals(s)){
                System.out.println("退出成功，欢迎下次光临！！");
                socket.close();//释放资源
                break;//跳出死循环
            }
            DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length, InetAddress.getLocalHost(),6666);
            /**
             * 3、开始正式发送这个数据包的数据出去
             */
            socket.send(datagramPacket);
        }

        System.out.println("客户端程序发完了！！6666666666");
        socket.close();//释放资源
    }
}
